package com.ethink.warehouse.api;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ethink.warehouse.api.info.MateInventoryLockLogInfo;
import com.ethink.warehouse.api.request.MateInventoryLockLogAddRequest;
import com.ethink.warehouse.api.request.MateInventoryLockLogQueryRequest;
import com.ethink.warehouse.api.request.MateInventoryLockLogUpdateRequest;
import com.ethink.warehouse.api.response.MateInventoryLockLogAddResponse;
import com.ethink.warehouse.api.response.MateInventoryLockLogDeleteResponse;
import com.ethink.warehouse.api.response.MateInventoryLockLogUpdateResponse;
import java.util.List;

/**
 * 库存锁定日志表 Facade接口
 *
 * @author default
 * @date 2022-12-12
 */
@FeignClient(name = "ethink-warehouse-service", path = "warehouse-service/facade/v1/mateInventoryLockLog", contextId = "mateInventoryLockLogFacade")
public interface MateInventoryLockLogFacade {

    @PostMapping("/queryMateInventoryLockLog")
    @ResponseBody
    Page<MateInventoryLockLogInfo> queryMateInventoryLockLog(@RequestBody MateInventoryLockLogQueryRequest request);

    @PostMapping("/getMateInventoryLockLogById")
    @ResponseBody
    MateInventoryLockLogInfo getMateInventoryLockLogById(@RequestParam("mateInventoryLockLogId") Long mateInventoryLockLogId);

    @PostMapping("/listMateInventoryLockLog")
    @ResponseBody
    List<MateInventoryLockLogInfo> listMateInventoryLockLog(@RequestBody MateInventoryLockLogQueryRequest request);

    @PostMapping("/addMateInventoryLockLog")
    @ResponseBody
    MateInventoryLockLogAddResponse addMateInventoryLockLog(@RequestBody MateInventoryLockLogAddRequest request);

    @PostMapping("/updateMateInventoryLockLog")
    @ResponseBody
    MateInventoryLockLogUpdateResponse updateMateInventoryLockLog(@RequestBody MateInventoryLockLogUpdateRequest request);

    @PostMapping("/deleteMateInventoryLockLog")
    @ResponseBody
    MateInventoryLockLogDeleteResponse deleteMateInventoryLockLog(@RequestParam("mateInventoryLockLogId") Long mateInventoryLockLogId);

}